/**
 * Copyright(c) 2014-2016 Basung Information Technology (Shanghai) Co., Ltd.
 * <p>
 * 　　　　　　　　┏┓　　　┏┓+ +
 * 　　　　　　　┏┛┻━━━┛┻┓ + +
 * 　　　　　　　┃　　　　　　　┃
 * 　　　　　　　┃　　　━　　　┃ ++ + + +
 * 　　　　　　 ████━████ ┃+
 * 　　　　　　　┃　　　　　　　┃ +
 * 　　　　　　　┃　　　┻　　　┃
 * 　　　　　　　┃　　　　　　　┃ + +
 * 　　　　　　　┗━┓　　　┏━┛
 * 　　　　　　　　　┃　　　┃
 * 　　　　　　　　　┃　　　┃ + + + +
 * 　　　　　　　　　┃　　　┃　　　　Code is far away from bug with the animal protecting
 * 　　　　　　　　　┃　　　┃ + 　　　　神兽保佑,代码无bug
 * 　　　　　　　　　┃　　　┃
 * 　　　　　　　　　┃　　　┃　　+
 * 　　　　　　　　　┃　 　　┗━━━┓ + +
 * 　　　　　　　　　┃ 　　　　　　　┣┓
 * 　　　　　　　　　┃ 　　　　　　　┏┛
 * 　　　　　　　　　┗┓┓┏━┳┓┏┛ + + + +
 * 　　　　　　　　　　┃┫┫　┃┫┫
 * 　　　　　　　　　　┗┻┛　┗┻┛+ + + +
 * <p>
 * History:
 * 2016/10/24 下午1:36 Created by leijinghan
 */
package com.jade.bss.service.pict.qiniu;

import com.jade.bss.base.BssException;
import com.jade.bss.service.pict.PictService;
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;

/**
 * Explain: 七牛 图片存储服务
 * Description:
 *
 * @Author : <a href="mailto:jinghan.lei@basung.com">leijinghan</a>.
 * @Version: 1.0
 * @Date : 2016/10/24.
 */
public class QiniuService implements PictService {
    protected String ACCESS_KEY;//ACCESS_KEY
    protected String SECRET_KEY;//SECRET_KEY
    protected String bucketName;//要上传的空间
    protected String callbackUrl;//回调地址
    protected String callbackBody;//回调信息
    protected String realmUrl; //外链域名

    //简单上传&回调
    public String getUpToken(Boolean isCallBack) throws BssException {
        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
        if (isCallBack) {
            return auth.uploadToken(bucketName,null,3600,new StringMap()
                    .put("callbackUrl", callbackUrl)
                    .put("callbackBody", callbackBody));
        }else {
            return auth.uploadToken(bucketName);
        }
    }

    //覆盖上传
    public String getUpToken(String key) throws BssException {
        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
        return auth.uploadToken(bucketName, key);
    }

    //获取图片外链路径
    public String getPath() throws BssException {
        return this.getRealmUrl();
    }

    public String getACCESS_KEY() {
        return ACCESS_KEY;
    }

    public void setACCESS_KEY(String ACCESS_KEY) {
        this.ACCESS_KEY = ACCESS_KEY;
    }

    public String getSECRET_KEY() {
        return SECRET_KEY;
    }

    public void setSECRET_KEY(String SECRET_KEY) {
        this.SECRET_KEY = SECRET_KEY;
    }

    public String getBucketName() {
        return bucketName;
    }

    public void setBucketName(String bucketName) {
        this.bucketName = bucketName;
    }

    public String getCallbackUrl() {
        return callbackUrl;
    }

    public void setCallbackUrl(String callbackUrl) {
        this.callbackUrl = callbackUrl;
    }

    public String getCallbackBody() {
        return callbackBody;
    }

    public void setCallbackBody(String callbackBody) {
        this.callbackBody = callbackBody;
    }

    public String getRealmUrl() {
        return realmUrl;
    }

    public void setRealmUrl(String realmUrl) {
        this.realmUrl = realmUrl;
    }
}
